<!DOCTYPE HTML>
<html>
<head>
<title>NumGet() | AutoHotkey</title>
<meta name="description" content="The NumGet function returns the binary number stored at the specified address+offset." />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="../static/theme.css" rel="stylesheet" type="text/css" />
<script src="../static/content.js" type="text/javascript"></script>
</head>
<body>

<h1>NumGet</h1>
<p>返回指定 地址+偏移 位置存储的二进制数值.</p>
<pre class="Syntax">Number := <span class="func">NumGet</span>(VarOrAddress <span class="optional">, Offset := 0</span><span class="optional">, Type := "UPtr"</span>)</pre>

<h2>参数</h2>
<dl>

  <dt>VarOrAddress(变量或地址)</dt>
  <dd>
		<p>内存地址或变量. 如果 <em>VarOrAddress</em> 是一个类似 <code>MyVar</code> 的变量且它的值不是纯数字或对象, 则相当于传递 <code>&amp;MyVar</code>, 然而省略 &quot;&amp;&quot; 可以执行的更好并确保目标地址+偏移是<a href="VarSetCapacity.htm">有效的</a>.</p>
		<p><strong>不要传递一个变量引用</strong>, 如果这个变量<em>包含</em>目标地址时; 在这种情况下, 传递一个类似 <code>MyVar+0</code> 的表达式.</p>
	</dd>

  <dt>Offset(偏移)</dt>
  <dd><p>偏移(单位为字节), 添加到 <em>VarOrAddress</em> 以确定目标地址.</p></dd>

  <dt>Type(类型)</dt>
  <dd>
    <p>下列字符串的其中一个(省略时默认为 UPtr):<br>
    UInt, Int, Int64, Short, UShort, Char, UChar, Double, Float, Ptr 或 UPtr</p>
    <p>与 DllCall 不同的是, 作为原义字符串使用时必须括在引号中.</p>
    <p>更多细节请参阅 <a href="DllCall.htm#types">DllCall 类型</a>.</p>
  </dd>

</dl>

<h2>返回值</h2>
<p>如果目标地址无效, 则返回空字符串. 然而, 某些无效地址这里无法检测出来并可能导致不可预知的行为.</p>
<p>其他情况下返回指定地址+偏移的数字.</p>

<h2>一般说明</h2>
<p>如果只使用了两个参数, 则第二个参数可以为 <em>Offset</em> 或 <em>Type</em>. 例如, <code>NumGet(var, "int")</code> 是合法的.</p>

<h2>相关</h2>
<p><a href="NumPut.htm">NumPut</a>, <a href="DllCall.htm">DllCall</a>, <a href="VarSetCapacity.htm">VarSetCapacity</a></p>

</body>
</html>